package cn.whit.blog.util;

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;

import cn.whit.blog.domain.EmailType;

public class MailUtils {

	public static void sendMail(String email, String emailMsg,EmailType emailType)
			throws AddressException, MessagingException {
		// 1.创建一个程序与邮件服务器会话对象 Session
		Properties props = new Properties();
		//设置发送的协议
		props.setProperty("mail.transport.protocol", "SMTP");
		//设置发送邮件的服务器
		props.setProperty("mail.host", "smtp.qq.com");
		props.setProperty("mail.smtp.auth", "true");// 指定验证为true
		
		// 创建验证器
		Authenticator auth = new Authenticator() {
			public PasswordAuthentication getPasswordAuthentication() {
				//设置发送人的帐号和密码
				return new PasswordAuthentication("174389642@qq.com", "onfihcpllqoabieh");
			}
		};
		Session session = Session.getInstance(props, auth);

		// 2.创建一个Message，它相当于是邮件内容
		Message message = new MimeMessage(session);
		//设置发送者
		message.setFrom(new InternetAddress("174389642@qq.com"));

		//设置发送方式与接收者
		message.setRecipient(RecipientType.TO, new InternetAddress(email)); 
		if(emailType == EmailType.newUser) {
			//新用户注册邮件
			//设置邮件主题
			message.setSubject("whit博客网站用户激活");
			//www.syrkitty.com
			//localhost:8080
			String emailurl = PropertyUtil.getProperty("emailurl");
			
			String url="http://"+emailurl+"/blog/UserServlet?method=active&activecode="+emailMsg;
			String content="<h1>来自whit博客网站的激活邮件!激活请点击以下链接!</h1><h3><a href='"+url+"'>"+url+"</a></h3>";
			//设置邮件内容
			message.setContent(content, "text/html;charset=utf-8");
			// 3.创建 Transport用于将邮件发送
			Transport.send(message);
		}else if(emailType == EmailType.backPassword) {
			//找回密码的邮件
			message.setSubject("whit博客网站找回密码");
			//www.syrkitty.com
			String content="<h1>来自whit博客网站的重置密码邮件!当前密码重置为：</h1><h3>"+emailMsg+"</h3>";
			message.setContent(content, "text/html;charset=utf-8");
			Transport.send(message);
		}else {
			System.out.println("未知类型邮件");
		}
		
	}
	public static void main(String[] args) throws AddressException, MessagingException {
		String content = "未知用户";
		if(args != null &&  args.length > 0 && args[0].trim().length() > 0) {
			content = args[0];
		}
		MailUtils.sendMail("174389642@qq.com", content,EmailType.newUser);
		System.out.println("OK");
		
	}
}
